package com.partynetwork.iparty.app.bean; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import org.codehaus.jackson.JsonFactory; import org.codehaus.jackson.JsonNode; import org.codehaus.jackson.JsonParser; import org.codehaus.jackson.JsonProcessingException; import org.codehaus.jackson.JsonToken; import org.codehaus.jackson.map.ObjectMapper; import com.partynetwork.dataprovider.util.L; import com.partynetwork.dataprovider.util.StringUtil; import com.partynetwork.iparty.app.AppException; import com.partynetwork.iparty.info.IpartyInfo; import com.partynetwork.iparty.info.IshareInfo; public class ShareList { private List<IshareInfo> shareList = new ArrayList<IshareInfo>(); public List<IshareInfo> getShareList() { return shareList; } public void setShareList(List<IshareInfo> shareList) { this.shareList = shareList; } public static ShareList parse(InputStream stream) throws AppException { ShareList shareList = new ShareList(); ObjectMapper om = new ObjectMapper(); try { JsonNode rootNode = om.readTree(stream); int result = rootNode.path("result").getIntValue(); if (result == 0) { // 失败 String why = rootNode.path("description").getTextValue(); L.i("发送失败:" + why); throw AppException.fail(why); } else if (result == 1) { // 成功 JsonNode dataNode = rootNode.path("details"); JsonFactory f = new JsonFactory(); JsonParser jp = f.createJsonParser(dataNode.toString()); jp.nextToken(); while (jp.nextToken() == JsonToken.START_OBJECT) { IshareInfo info = om.readValue(jp, IshareInfo.class); shareList.getShareList().add(info); } return shareList; } else { throw AppException.fail("接口异常"); } } catch (JsonProcessingException e) { L.i("json转换失败"); throw AppException.json(e); } catch (IOException e) { throw AppException.io(e); } } }